package com.liu.config;//package com.liu.config;
//
//import com.alibaba.csp.sentinel.slots.block.RuleConstant;
//import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;
//import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRuleManager;
//import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
//import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import java.util.ArrayList;
//import java.util.List;
//
//@Configuration
//public class SentinelMsg {
//
//    @Bean
//    public void setSenteal() {
//        List<FlowRule> rules = new ArrayList<>();
//        FlowRule rule = new FlowRule();
//        rule.setResource("createOrderLimiting");
//        rule.setCount(2000);
//        rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
//        rule.setLimitApp("default");
//        rules.add(rule);
//        FlowRuleManager.loadRules(rules);
//    }
//
//    /**
//     * 熔断规则
//     */
//    @Bean
//    public void fusingRule() {
//        DegradeRule rule = new DegradeRule();
//        rule.setResource("createOrderFusing");
//
//        // 1s 内的请求数超过 5 的情况下，响应时间超过多少，打开熔断器；
//        rule.setGrade(RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT);
//
//        // 如果响应时间超过 10ms，就记一次数；如果 1s 内有 5 个请求，5 个请求都超时了，就熔断；
//        rule.setCount(3);
//
//        // 熔断的持续时间为 10s，熔断时间超过 10s 就进入半打开状态；
//        rule.setTimeWindow(10);
//
//        List<DegradeRule> degradeRules = new ArrayList<>();
//        degradeRules.add(rule);
//        DegradeRuleManager.loadRules(degradeRules);
//    }
//}